With the rapid developments in wireless networking, mobile devices, such as laptop computers, personal digital assistant (PDA) devices, pc companions, high-end cellular phones, etc., are playing an increasingly important role in network communications. Mobile devices typically communicate with other devices by transmitting and receiving data over radio frequency (RF) channels. The wireless nature of the RF communications allows the devices to be mobile, i.e., to move from one place to another without losing the wireless communication links. Through wireless links, a mobile device can communicate with a wired network and other mobile devices through access point devices of the wired network (the “infrastructure mode”), or talk to other mobile devices directly by forming a peer-to-peer network (the “ad hoc mode”).
Although the mobility of mobile devices provides great freedom and convenience to their users, there are technical challenges in supporting the mobility of those devices. One major issue is how to maintain session continuity when a mobile device moves around. When a mobile device using TCP/IP for communicating with other devices crosses a boundary between subnets, it may be assigned a new network address. In response to the address change, the TCP/IP stack in the device removes the old IP address. As a result of this modification, however, an application on the mobile device that is communicating with another application on a correspondent device loses any communication context it had associated with the previous address. The application has to restart any activity that was going on based on the previous address. For example, a file transfer or some real-time session that was underway would have to be restarted. To that end, the connection with the correspondent device established using the previous address has to be terminated and a new connection has to be restarted using the new address, and all data buffered for the old connection are lost. As a result, the operating system of the mobile device fails to support seamless mobility, i.e., providing session continuity that is transparent to applications hosted on it.
Several schemes have been proposed for handling mobility transparently by requiring help from an agent (or proxy) on the network. For instance, Mobile IP or SIP (Session Initiation Protocol) based schemes use an agent between a mobile device (called a “mobile host” (MH)) and a device it is communicating with (called a “correspondent host” (CH)). The agent is responsible for tunneling or redirecting packets from the correspondent host to the mobile device when the mobile device changes address. Version 6 of the Mobile IP protocol comes close to being an agent-less scheme but still proposes the use of a home agent to tunnel packets to the mobile device for new nodes that start communicating with the mobile device using its old address when the mobile device is moving and changing addresses. All currently existing schemes to support seamless mobility also entail a packet overhead for every packet that is routed to/from the mobile device after it acquires a new address. The requirement of an agent makes the implementation of the existing mobility support schemes rather complicated, and the increased overhead for the triangular packet routing is not desirable. Also, the permanent packet overhead after the mobile node has changed its address can be oppressive for short packets such as those used for audio streaming. This is especially so when the mobile station is using low bandwidth wireless links